package middlewares

import (
	"gin_gorm_oj/helper"
	"github.com/gin-gonic/gin"
	"net/http"
)

// AuthAdmin 是一个中间件，用于认证管理员用户
func AuthAdmin() gin.HandlerFunc {
	return func(c *gin.Context) {
		// 这里可以添加你的认证逻辑，比如检查请求头中的token
		authorization := c.GetHeader("Authorization")
		userClaim, err := helper.TestParseToken(authorization)
		if err != nil {
			c.Abort()
			c.JSON(http.StatusOK, gin.H{
				"code": -1,
				"msg":  "认证失败:" + err.Error(),
			})

			return
		}
		if userClaim.IsAdmin != 1 {
			c.Abort()
			c.JSON(http.StatusOK, gin.H{
				"code": -1,
				"msg":  "无权限",
			})

			return
		}
		c.Next()
	}
}
